Перейти к основному содержимому

НФТ (Нефункциональные требования)

Functional vs Non Functional Requirements - GeeksforGeeks

Нефункциональные требования (НФТ): Определяют ограничения, характеристики и требования к производительности, безопасности, надежности, доступности и т.д. Определяют качества системы

Функциональные требования описывают, ЧТО необходимо реализовать в продукте или системе, в т.ч. какие действия должны выполнять пользователи при взаимодействии с ними.

Нефункциональные требования описывают, КАК должна работать система или программный продукт, и какими свойствами или характеристиками она должна обладать.

НФТ - требования, определяющие свойства (атрибуты), которые система должна демонстрировать, и которые не относятся к поведению (функциональности) системы.

Нефункциональные требования описывают "как" система должна работать, включая аспекты, такие как производительность, безопасность, надежность, доступность и др.

Примеры нефункциональных требований:

Производительность: Система должна обрабатывать запросы от пользователей в течение 2 секунд.
Безопасность: Доступ к административным функциям системы должен быть защищен аутентификацией двухфакторным методом.
Надежность: Время между сбоями системы (время наработки на отказ) должно составлять не менее 500 часов.
Доступность: Система должна быть доступна для пользователей 99.9% времени, за исключением плановых работ, которые должны проводиться в ночное время.
Масштабируемость: Система должна поддерживать увеличение нагрузки на 50% без значительного ухудшения производительности.
Удобство использования: Интерфейс пользователя должен быть интуитивно понятным и удобным для работы.

Нефункциональные требования описывают качественные аспекты, которые определяют критически важные характеристики системы.

Картинка про НФТ к доступности:

Картинка про что из чего возникает и что во что выражается и транслируется:

В НФТ содержится много чего разного, но нас интересуют атрибуты качества, бизнес-правила и ограничения.

Виды НФТ:​

  1. Атрибуты качества - определяющие качественные характеристики ПО или системы (производительность, надежность, масштабируемость)

  2. Ограничения - условия, ограничивающие возможности реализации требований или их наборов (Разработка должна вестись на платформе вендора X)

  3. Бизнес-правила - правила, определяющие или ограничивающие некоторые аспекты бизнеса (Корпоративные политики, промышленные стандарты, правительственные постановления)

    "Если оплата по счету не поступила в течение 15 дней, заказ считается отмененным",
    "При отгрузке товара менеджер должен запросить у бухгалтера товарную накладную и счет-фактуру"

  4. Внешние интерфейсы - описание взаимодействия с другими системами и операционной средой (API, требования к API, других систем, с которыми осуществляется интеграция)

    "Обеспечить запись в журнал операционной системы следующих событий: сообщения о запуске и остановке сервиса XX,"

    "Обеспечить запись в журнал параметров модулей программы: сканера, ядра, антивирусных баз (информация должна заноситься в журнал при запуске программы и при обновлении модулей)"

  5. Юридические требования - соблюдение законов (требования к лицензированию, патентной чистоте, другие юр. требования)

Общая классификация НФТ (4 большие группы)​

ЭТО ОЧЕНЬ ВАЖНО!! (картинка снизу - ещё примеры НФТ)

Другие виды требований​

Функциональные требования (Functional Requirements): Описывают конкретные функции, операции и возможности, которые должна выполнять система.

Нефункциональные требования (Non-Functional Requirements): Определяют ограничения и характеристики, такие как производительность, безопасность, надежность, доступность, удобство использования и другие.

Бизнес-требования (Business Requirements): Выражают потребности и цели бизнеса, которые система должна удовлетворить. Они обычно описывают контекст, в котором будет использоваться система.

Пользовательские требования (User Requirements): Определяют потребности и ожидания пользователей от системы, фокусируясь на том, как система будет использоваться в реальных сценариях.

Системные требования (System Requirements): Включают технические детали, такие как аппаратные и программные требования, системные архитектурные компоненты и т.д.

Требования к интерфейсам (Interface Requirements): Описывают, как система будет взаимодействовать с другими системами, сторонними сервисами и пользователями через различные интерфейсы.